#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2024 - 2024 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2024/8/23 23:13
# @Author  : Yuyun
# @File    : leetcode_739_每日温度.py
# @IDE     : PyCharm


"""
给定一个整数数组 temperatures ，表示每天的温度，返回一个数组 answer ，
其中 answer[i] 是指对于第 i 天，下一个更高温度出现在几天后。如果气温在这之后都不会升高，请在该位置用 0 来代替。

示例 1:
输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

示例 2:
输入: temperatures = [30,40,50,60]
输出: [1,1,1,0]

示例 3:
输入: temperatures = [30,60,90]
输出: [1,1,0]

提示：
1 <= temperatures.length <= 10^5
30 <= temperatures[i] <= 100
"""

class Solution:
    def daily_temperature(self, nums):
        length = len(nums)
        #   记录下标
        stack = []
        #   记录结果
        result = [0] *  length
        #   将各个下标压入栈
        for i in range(length):
            #   栈不为空 且 当前数组数值 > 栈顶下标对应数组数值
            while stack and nums[i] > nums[stack[-1]]:
                #   计算栈顶下标的结果 = 当前下标值 - 栈顶下标值
                result[stack[-1]] = i - stack[-1]
                #   推出栈顶下标值
                stack.pop()
            #   其他情况，下标压栈
            stack.append(i)
        return result

if __name__ == '__main__':
    nums = list(map(int, input().split(',')))
    solution = Solution()
    result = solution.daily_temperature(nums)
    print(result)
